#ifndef _STU_H
#define _STU_H

#define PATH_OF_DATA "data/stu_data"
#define FMT_OF_DATA "%d %s %d %d\n" //学号 姓名 年龄 成绩

typedef struct{
	int id;//学号
	char name[100];
	int age;
	int score;//成绩
}Stu, *PStu;

typedef struct l{
	union{
		Stu stu;//数据节点中，存储学生信息
		int len;//头节点中，存储链表的长度
	};
	struct l *next;
}Link, *PLink, Node, *PNode;

//主程序功能函数
int cmd_init();
int cmd_insert();
int cmd_printAll();
int cmd_deleteByID();
int cmd_updateByID();
int cmd_selectByID();
int cmd_sortedByScore();
int cmd_exit();

//公用函数
PLink readFromFile();
int clearAndWrite2File(PLink L);
int link_deleteByID(PLink L,int id);
void link_rearInsert(PLink L,PNode p);
void link_destroy(PLink L);
PNode link_findById(PLink L,int id);

#endif
